package com.example.gaoyang.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.gaoyang.domain.ConstructionPlan;
import com.example.gaoyang.domain.request.ConstructionPlanRequest;
import com.example.gaoyang.domain.vo.ConstructionPlanVO;
import com.example.gaoyang.request.Result;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface ConstructionPlanService extends IService<ConstructionPlan> {

    /**
     * 添加施工计划
     * @param constructionPlanRequest
     */
    void addConstructionPlan(ConstructionPlanRequest constructionPlanRequest);

    /**
     * 批量删除施工计划
     * @param ids
     */
    void batchDeleteConstructionPlan(List<Long> ids);

    /**
     * 获取施工计划列表
     * @param constructionPlanRequest
     * @return
     */
    List<ConstructionPlanVO> getConstructionPlanList(ConstructionPlanRequest constructionPlanRequest);

    /**
     * 获取施工计划分页列表
     * @param constructionPlanRequest
     * @return
     */
    IPage<ConstructionPlanVO> getConstructionPlanPageList(IPage<ConstructionPlan> page, ConstructionPlanRequest constructionPlanRequest);

    /**
     * 修改施工计划
     * @param constructionPlanRequest
     */
    void updateConstructionPlan(ConstructionPlanRequest constructionPlanRequest);

    /**
     * 导入施工计划
     * @param file
     */
    /**
     * 导入施工计划Excel文件
     * @param file Excel文件
     * @return 导入结果
     */
    void importConstructionPlan(MultipartFile file);

    /**
     * 获取施工计划详情
     * @param constructionPlanRequest
     * @return
     */
    ConstructionPlanVO getConstructionPlanDetail(ConstructionPlanRequest constructionPlanRequest);

    /**
     * 导出施工计划模板
     * @param response
     */
    void exportConstructionPlanTemplate(HttpServletResponse response);
}
